【wp】2021DASCTF July X CBCTF 4th 您所在的位置:网站首页 man head maze 【wp】2021DASCTF July X CBCTF 4th

【wp】2021DASCTF July X CBCTF 4th

#【wp】2021DASCTF July X CBCTF 4th| 来源: 网络整理| 查看: 265

第一天打dfjk去了,打完回来看发现逆向一道Golang一道lua,不太想啃,于是干脆光速转行做杂项= =

也没想到能差一题就ak杂项了(逃。学到很多,顺手总结总结(RE手要跑路啦)。

回头有空复现一下剩下的那道杂项和那个lua逆向(咕咕咕

Misc red_vs_blue

连上去以后乱答了几次,发现在同一次连接的情况下(重来的时候按y),每一场的预测都是一样的。

image-20210801204741907

所以直接pwntools连上去爆破即可:

#!/usr/bin/env python # ------ Python2 ------ from pwn import * # context.log_level='debug' host="node4.buuoj.cn" port=25384 r=remote(host,port) myInput='' pred='rb' cnt=0 for _ in range(3): r.recvline() while True: r.recvline() r.recvline() r.sendline(pred[cnt%2]) r.recvline() r.recvline() rslt=r.recvline() print(pred[cnt%2],rslt) if 'successful' in rslt: myInput+=pred[cnt%2] print("[input] -> "+myInput) if len(myInput)==66: break else: r.sendline('y') for x in myInput: r.recvuntil('\n') r.recvline() r.sendline(x) r.recvline() r.recvline() r.recvline() cnt+=1 r.interactive()

image-20210801212244559

flag{783e1bfd-0803-47b6-b302-28591dcb9fca}

funny_maze

连上去发现是走迷宫,3和2都看了一下分别是:

image-20210801212517120

要点在:输入路径的长度,并且有时间限制。

一开始以为这个and的意思是先输入路径再输入长度,结果写完脚本以后一直跑都不对,甚至跑去问工作人员了(x)。后来看到有解,才发现应该是自己理解出了问题XD

去年年底打zhb的时候也有一道杂项是远程迷宫(当时写过一版bfs),于是直接拿来改了,微调了一下recvline的次数:

#!/usr/bin/env python # ------ Python2 ------ from pwn import * # import time # t=time.clock() # context.log_level='debug' host="node4.buuoj.cn" port=29294 r=remote(host,port) r.recvuntil('game\n') r.sendline('1') dirs=[[0,1],[1,0],[0,-1],[-1,0]] flag_char='dsaw' cntSuccess=0 while True: if cntSuccess==0: maze=r.recvuntil('answer:\n').split('\n')[:-1] else: maze=r.recvuntil('answer:\n').split('\n')[3:-1] cntSuccess+=1 print("------") for rows in maze: print(''.join(rows)) print("------") maze=[list(n) for n in maze] row=len(maze) col=len(maze[0]) path=[] flag="" book=[[(0,0,0) for _ in range(col)] for _ in range(row)] head=0 tail=1 cnt=0 for i in range(len(maze)): if 'S' in maze[i]: start=(i,maze[i].index('S')) cnt+=1 if 'E' in maze[i]: end=(i,maze[i].index('E')) cnt+=1 if cnt==2: break path.append(start) book[start[0]][start[1]]=path[head]+('*',) maze[start[0]][start[1]]='#' isSuccess=0 while head


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有